//
// Copyright (C) [2024] Xingyun Integrated Circuit, Inc.
//
// GreenCode was a private technology asset of Xingyun Integrated Circuit， Inc （Confidential）
//  Author: Shawn.Tan
//  Date : 2025.10.28
//
//  History : Initial Version 2025.10.28
//
//
#ifndef Green_PyRandomUtils_H
#define Green_PyRandomUtils_H

#include "pybind11/pybind11.h"

#include "RandomUtils.h"
#include "ThreadContext.h"

namespace py = pybind11;

namespace Green {

  PYBIND11_MODULE(RandomUtils, mod) {
    mod
      .def("random32", &random_value32, py::arg("aMin") = 0, py::arg("aMax") = MAX_UINT32, py::call_guard<ThreadContext>())
      .def("random64", &random_value64, py::arg("aMin") = 0, py::arg("aMax") = MAX_UINT64, py::call_guard<ThreadContext>())
      .def("randomReal", &random_real, py::arg("aMin") = 0.0, py::arg("aMax") = 1.0, py::call_guard<ThreadContext>())
      ;
  }

}

#endif  // Green_PyRandomUtils_H
